"""
动态规划问题的两个性质：
        1. 重叠子问题
        2. 子问题相互独立。最优子结构

求解过程一半分为三部分：
        1. 明确状态
        2. 明确base case
        3. 明确状态转移方程
"""